package com.edu.service;

import com.edu.bean.User;
import com.edu.dao.UserDao;

import java.util.List;

public class AdminUserService {
    private UserDao userDao = new UserDao();

    /**
     * 管理员登录
     */
    public User adminLogin(String username, String password, Integer roleId) {
        return userDao.findByUsernameAndPassword(username, password, roleId);
    }

    /**
     * 根据ID获取用户信息
     */
    public User adminGetUserById(Integer userId) {
        return userDao.findById(userId);
    }

    /**
     * 获取总记录数
     */
    public int adminGetTotalCount(String username) {
        return userDao.findTotalCount(username);
    }

    /**
     * 分页获取用户列表
     */
    public List<User> adminListUserByPage(String username, int currentPage, int pageSize) {
        int start = (currentPage - 1) * pageSize;
        return userDao.findByPage(username, start, pageSize);
    }

    /**
     * 获取所有用户
     */
    public List<User> adminListUser() {
        return userDao.findAll();
    }

    /**
     * 添加用户
     */
    public boolean adminAddUser(User user) {
        // 检查用户名是否已存在
        if (userDao.checkUsernameExists(user.getUsername(), null)) {
            return false;
        }
        return userDao.add(user);
    }

    /**
     * 更新用户
     */
    public boolean adminUpdateUser(User user) {
        // 检查用户名是否已存在（排除当前用户）
        if (userDao.checkUsernameExists(user.getUsername(), user.getUserId())) {
            return false;
        }
        return userDao.update(user);
    }

    /**
     * 删除用户
     */
    public boolean adminDeleteUser(Integer userId, Integer currentUserId) {
        // 不能删除当前登录用户
        if (userId.equals(currentUserId)) {
            return false;
        }
        return userDao.delete(userId);
    }
}